The present invention is directed to streaming multimedia content over the Internet. More specifically, the present invention is directed to a system and method for streaming media objects using a group of end nodes and at least one core node.
Delivering streaming multimedia content with high quality and low cost over the Internet is challenging due to large sizes of media objects and rigorous requirements of continuous streaming demand. A conventional solution to this problem is a proxy caching approach, which has been utilized for delivering text-based content on the Internet. In a proxy caching approach, a proxy is positioned between web servers and multiple clients to act as a shared cache for the clients. When a client requests a web object, the proxy requests the object from the server, stores (caches) a copy of the object on the proxy, and delivers the object to the client. When there is another request for that web object, by any of the clients, the proxy uses the cached copy of the object instead of requesting it from the server again. Because proxies can serve a large number of clients, a cached object may be served to a large number of clients, while only requiring a single request to the server. This results in reduced latency and network traffic.
However, proxies are limited in the amount of media data they can cache for clients due to the large sizes of media objects and the limited storage capacity of a proxy. Although small media clips can be cached in the same way as caching text-based objects, caching high quality video objects will quickly exhaust the limited storage capacity of a proxy. Thus, when a large number of requests are made for streaming media objects, a proxy can become a system bottleneck and slow down all requests made by all of the clients served by the proxy.
Commercial content delivery networks (CDNs) are systems that can be used for streaming media objects. CDNs have been developed to replicate media servers across the Internet to move media content closer to clients. FIG. 7 illustrates a conventional CDN. In the conventional CDN of FIG. 7, a backbone network 700 connects a media server 702 and a media source 704 with various portals 706, 708, and 710. An access network 730 connects various clients 732, 734, and 736. As illustrated in FIG. 7, client 732 sends a request for media content to a location redirector 720 which redirects the request to portal 706 in the backbone network 700. The content then is distributed in the backbone network from the media server 702 or the media source 704 to one of the portals 706, 708, or 710. The portal 706, 708, or 710 then delivers the content to one of the clients 732, 734, or 736 in the access network 720.
Although CDNs are effective at providing streaming media content, the infrastructure costs of CDNs are great. Thus, small media providers cannot afford the cost of CDN services. Furthermore, large amounts of resources at the clients or end users (e.g., desktop machines, etc.) are underutilized in CDN solutions.
Recently, proxy hierarchies have been developed to provide additional resources to increase efficiency of proxies on the Internet. A proxy hierarchy is a group of proxies which work together for increased performance. In a proxy hierarchy, if a proxy does not have a requested object cached, the proxy can request the object from neighboring proxies. However, coordination of different proxies to deliver high quality streaming media over the Internet remains a challenging problem.